Android
文章平均质量分 60
时之沙
邮箱:showhandt@163.com
展开
-
android单元测试
在实际开发中,开发android软件的过程需要不断地进行测试。而使用Junit测试框架,是正规Android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性:第一步:首先在AndroidManifest.xml中加入下面代码: package="cn.itcast.action“ android:versionCode="1“原创 2012-06-16 23:41:06 · 2498 阅读 · 1 评论 -
android adb常用命令
为了能在任意目录使用一下命令,需要将SDK目录下的platform-tools文件夹路径和tools文件夹路径配置到path环境变量中 列出可以使用的android版本android list targets 列出可以使用的虚拟机android list avd 创建虚拟机android create avd –n 虚拟机名> -t 版本ID> -c 卡大小> -s 屏幕尺原创 2012-06-16 23:25:30 · 5474 阅读 · 0 评论 -
android数据存储与访问之使用SD卡
使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的。对于像视频这样的大文件,我们可以把它存放在SDCard。 SDCard是干什么的?你可以把它看作是移动硬盘或U盘。在模拟器中使用SDCard,你需要先创建一张SDCard卡(当然不是真的SDCard,只是镜像文件原创 2012-06-18 00:00:23 · 2697 阅读 · 0 评论 -
android数据存储与访问之使用SharedPreferences
很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPrefer原创 2012-06-18 00:10:30 · 3907 阅读 · 0 评论 -
android数据存储与访问之使用pull解析器
Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE。如果用在javaEE需要把其jar文件放入类路径中,因为Android已经集成进了Pull解析器,所以无需添加任何jar文件。android系统本身使用到的各种xml文件,其内部也是采用Pull解析器进行解析的。 Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,原创 2012-06-18 00:06:24 · 2121 阅读 · 0 评论 -
android数据存储与访问之使用普通文件
很多时候我们的软件需要对处理后的数据进行存储或再次访问。Android为数据存储提供了如下几种方式:文件SharedPreferences(参数)SQLite数据库内容提供者(Content provider)网络一. 文件1.1使用文件进行数据存储Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J原创 2012-06-17 23:54:17 · 2929 阅读 · 0 评论 -
71道经典Android面试题和答案
1. 下列哪些语句关于内存回收的说明是正确的? (b ) A、 程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A、ArithmeticExcept转载 2012-06-19 11:51:02 · 3337 阅读 · 0 评论 -
android数据存储与访问之使用ContentProvider
ContentProvider简介及其好处简介:ContentProvider 在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider 对你应用中的数据进行添删改查。关于数据共享,以前我们学习过文件操作模式,知道通过指定文件的操作模式为Context.MODE_WORLD_原创 2012-06-19 18:56:18 · 3902 阅读 · 0 评论 -
使用ContentObserver监听ContentProvider中数据的变化
如果ContentProvider的访问者需要知道ContentProvider中的数据发生了变化,可以在ContentProvider 发生数据变化时调用getContentResolver().notifyChange(uri, null)来通知注册在此URI上的访问者,例子如下:public class PersonContentProvider extends ContentProvi原创 2012-06-19 18:57:38 · 4500 阅读 · 0 评论 -
使用GIT工具获取android应用程序源代码
在进行开发时,我们可能需要知道手机上某些服务,如短信和联系人等等的provider 中的主机名 ,因此需要使用GIT工具下载安卓程序的源代码,以下是简单的介绍:GIT工具下载地址:http://code.google.com/p/msysgit/如下图:获取源代码步骤:1.在上述网站进行GIT工具的下载2. 登录源代码网站https:原创 2012-06-19 19:27:40 · 4580 阅读 · 0 评论 -
Android获取手机经纬度
利用手机获取所在地点的经纬度:Location 在Android 开发中还是经常用到的,比如 通过经纬度获取天气,根据Location 获取所在地区详细Address (比如Google Map 开发).等。而在Android 中通过LocationManager 来获取Location .通常获取Location 有GPS 获取,WIFI 获取. 如下介绍GPS获取Location:原创 2012-07-04 21:34:16 · 18350 阅读 · 1 评论 -
Android 激活Deviceadmin,并进行锁屏和恢复出厂设置
Android手机一般不用时,都会通过电源键来锁定屏幕同时关闭屏幕灯。其实从API Level 8 (也就是Android 2.2) 开始, Android提供了DevicePolicyManager类, 可以让你的应用程序也能执行屏幕锁定等操作。锁定效果:要让自己的应用实现该屏幕锁定,主要需要用到以下几个类:DevicePolicyManager这是设备管理的主类。通过它可以实现原创 2012-07-04 21:41:20 · 9754 阅读 · 0 评论 -
android Intent机制详解
什么是IntentIntent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给原创 2012-06-24 21:32:03 · 12013 阅读 · 6 评论 -
android 多线程断点续传下载器
多线程断点下载流程图:多线程断点续传下载原理介绍:在下载的时候多个线程并发可以占用服务器端更多资源,从而加快下载速度手机端下载数据时难免会出现无信号断线、电量不足等情况,所以需要断点续传功能根据下载数据长度计算每个线程下载的数据位置,程序中开启多个线程并发下载在请求头中设置Range字段就可以获取指定位置的数据,例如:Ra原创 2012-06-23 19:24:07 · 3709 阅读 · 0 评论 -
android 之访问WebService显示手机号码归属地
发送XML 通过URL封装路径打开一个HttpURLConnection 设置请求方式,Content-Type和Content-LengthXML文件的Content-Type为:text/xml; charset=UTF-8使用HttpURLConnection获取输出流输出数据 WebService WebService是发布在网络上的API,可以通过发送XM原创 2012-06-23 18:16:18 · 5362 阅读 · 1 评论 -
android中的dip、dp、px、sp和屏幕密度
1. dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这 这个,不依赖像素。 这里要特别注意dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示。在屏幕密度为160的显示屏上,1dip=1px,有时候可能你的原创 2012-06-24 19:01:56 · 2727 阅读 · 1 评论 -
Android实现界面组件的抖动效果
Android实现界面组件的抖动效果采用的Animation动画, 在系统提供的API Demos:目录为 \android-sdk\samples\android-8\ApiDemos 中已经实现了简单的抖动效果 :具体使用如下:第一步:准备两个动画效果的XML文件,加入到 res/anim/目录下:Shake.xml文件: android:f原创 2012-07-08 10:45:17 · 9565 阅读 · 3 评论 -
Intent传递的数据
Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选) A、Serializable B、charsequence C、Parcelable D、BundleSerializable :将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Seria原创 2012-06-27 09:03:20 · 4331 阅读 · 0 评论 -
android之Service详解
服务--ServiceAndroid中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。服务的开发比较简单,如下:第一步:继承Service类public class SMSService extends Service { }第二步:在AndroidManifest.xml文件中的节点原创 2012-06-27 12:34:57 · 2760 阅读 · 0 评论 -
android 广播接收者--BroadcastReceiver
BroadcastReceiver初识:广播接收者(BroadcastReceiver)用于接收广播Intent,广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBroadcast()来实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收,这个特性跟JMS中的Topic消息接收者类似。要实现一原创 2012-06-27 12:10:36 · 10365 阅读 · 2 评论 -
android 之service实现电话监听并录音
要实现电话监听,需要监听电话的状态,方法如下. ListenReceiver类: 收到电话广播时开启监听电话的服务public class ListenReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { con原创 2012-06-27 12:51:26 · 6475 阅读 · 1 评论 -
android 使用广播接收者监听短信和拦截外拨电话
如果你想监听自己或者别人接收到的短信,设置黑名单等功能,那么就需要以下功能监听短信,并进行提示或者响应的处理:当系统收到短信时,会发出一个广播Intent,Intent的action名称为android.provider.Telephony.SMS_RECEIVED,该Intent存放了系统接收到的短信内容,我们使用名称“pdus”即可从Intent中获取到短信内容:pub原创 2012-06-27 12:19:07 · 11308 阅读 · 1 评论 -
android ListView美化-->几个比较特别的属性
ListView在一般的安卓应用中大量地使用,因此我整理出来一些个人认为比较特别的属性,通过设置这样的属性可以做出更加美观的列表:首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和falseandroid:stackFromBottom="true" 第二是transciptMode属性,需要用原创 2012-07-12 00:18:50 · 7607 阅读 · 2 评论 -
Android 图片平铺实现方式
Android 框架允许创建一个 drawable 包含一个 bitmap 并用于平铺、缩放和对齐处理。当我们需要让背景使用下面图片进行平铺时: 1)第一种利用系统提供的api实现Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic); //bitmap = Bitmap.原创 2012-07-12 00:28:16 · 20237 阅读 · 3 评论 -
android 如何防止代码被反编译
作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代原创 2012-06-29 21:04:08 · 2761 阅读 · 0 评论 -
JNI之C语言简单回顾
一.C语言基本数据类型: c语言中 char, int, float, double, signed, unsigned, long, short and void// java 中的8大本数据类型和他们的长度 // byte 1 char 2 short 2 int 4 long 8 double 8 float 4 boolean 1// 在c99标准的c语言.没有原创 2012-06-29 20:56:53 · 2560 阅读 · 0 评论 -
android 反编译apk文件
安装ApkTool工具,该工具可以解码得到资源文件,但不能得到Java源文件。安装环境:需要安装JRE1.61> 到http://code.google.com/p/android-apktool/下载apktool1.3.2.tar.bz2 和apktool-install-windows-2.2_r01-3.tar.bz2 文件。解压两个文件,然后把解压后的文件放在一起,如:c:\ap原创 2012-06-29 21:01:56 · 3096 阅读 · 1 评论 -
android JNI之C 语言回顾:文件的读写和随机数函数
由于C语言更适于操作硬件,且在一些处理文件的操作上效率比较高,所以在类似操作一般使用JNI调用C代码进行操作: 比如音频,视频以及图像的处理:具体如音频格式的转码器,类似于photo关于图片效果的渲染等应用中,需要大量应用JNI.在此回顾下C语言操作文件的内容:C文件的操作模式:“rt” 只读打开一个文本文件,只允许读数据 “wt” 只写打开或建立一个文原创 2012-07-01 11:09:17 · 8283 阅读 · 0 评论 -
Android Message机制的灵活应用
一、线程间通讯的Message机制1、Message介绍frameworks\base\core\java\android\Os\Message.javaMessage是线程之间传递信息的载体,包含了对消息的描述和任意的数据对象。Message中包含了两个额外的 int字段和一个object字段,这样在大部分情况下,使用者就不需要再做内存分配工作了。虽然Message的构造函数是pub原创 2012-07-01 09:42:20 · 2468 阅读 · 0 评论 -
Android 之 Handler总结
一、Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操原创 2012-07-01 09:39:18 · 1612 阅读 · 0 评论 -
Android 安全访问机制
概述:Android是一个多进程系统,在这个系统中,应用程序(或者系统的部分)会在自己的进程中运行。系统和应用之间的安全性通过Linux的facilities(工具,功能)在进程级别来强制实现的,比如会给应用程序分配user ID和Group ID。更细化的安全特性是通过"Permission"机制对特定的进程的特定的操作进行限制,而"per-URI permissions"可以对获取特定原创 2012-07-15 19:16:45 · 2879 阅读 · 0 评论 -
Android 中各种权限深入体验及详解
一. 权限(permission)权限用来描述是否拥有做某件事的权力。Android系统中权限分为普通级别(Normal),危险级别(dangerous),签名级别(signature)和系统/签名级别(signature or system)。系统中所有预定义的权限根据作用的不同,分别属于不同的级别。对于普通和危险级别的权限,我们称之为低级权限,应用申请即授予。其他两级权限,我们称之为高原创 2012-07-15 19:27:46 · 17756 阅读 · 1 评论 -
Android Handler 主线程 子线程 双向通信
andriod提供了 Handler 和 Looper 来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。在Android,这里的线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会有一个Looper,这个事android的新 概念。我们的主线程(UI线程)就是一个消息循环的线程原创 2012-07-14 00:25:51 · 11071 阅读 · 0 评论 -
Android之EditView 阻止软键盘自动弹出
在AndroidManifest.xml里面 选择那个acitivity, 把他的window soft input mode设置成stateHidden和 adjustUnspecified Java代码 android:name=".ClientSearchViewActivity" android:label="@string/app_na原创 2012-07-16 22:13:00 · 5993 阅读 · 0 评论 -
Android 中TextView 添加超链接
1、 使用android:autoLink="all" 只需在TextView中加入这个属性,而在TextView里面写的文字中包含网址、电话、email的会自动加入连接地址。 如: android:id="@+id/text1" android:layout_width="match_parent" android:layout_height="match_parent"原创 2012-07-16 22:17:34 · 14836 阅读 · 1 评论 -
LogCat命令详细说明
Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命令来查看和使用.使用logcat命令你可以用 logcat 命令来查看系统日志缓冲区的内容:[adb] logcat [] ... [] ...请查看Listing of logcat Command Options ,原创 2012-07-16 10:47:12 · 3302 阅读 · 0 评论 -
Android实现倒计时之使用CountDownTimer
CountDownTimer这个类,从名字上面大家就可以看出来,记录下载时间。将后台线程的创建和Handler队列封装成为了一个方便的类调用。 查看了一下官方文档,这个类及其简单,只有四个方法,上面都涉及到了onTick,onFinsh、cancel和start。其中前面两个是抽象方法,所以要重写一下。 下面是官方给的一个小例子:1. new Countdown原创 2012-08-05 23:02:40 · 6969 阅读 · 1 评论 -
新浪微博客户端 -- OAuth认证
OAuth的基本概念,OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同样新浪微博提供OAuth认证也是为了保证用户账号和密码的安全,在这里通过OAuth建立普通新浪微博用户、客户端程序(我们正在原创 2012-07-23 00:06:41 · 7117 阅读 · 0 评论 -
Android 多线程系统概述及与Linux系统的关系
线程系统的分类1.1 操作系统内核实现了线程模型(核心型线程)- Windows - 线程与进程的多对多模型线程效率比较高Window Thread结构如下图所示:1.2 操作系统核外实现的线程(用户进程)- Linux 部分 Unix 线程与进程的一对一,一对多模型,线程的调度者在核外原创 2012-08-09 23:00:17 · 4254 阅读 · 0 评论 -
Android 之Activity , Window和View的关系及一些细节
跟踪Activity的源码就会发现:Activity.attch() -> PolicyManager -> Policy -> PhoneWindow -> mLayoutInflater.inflate()&mContentParent.addView()这只是一个简单的跟踪过程描述。通过跟踪源代码,就可以很清晰的看出他们三者的关系。 Activity像一个工匠(控制单元),原创 2012-07-27 23:49:33 · 5014 阅读 · 0 评论